package cn.iocoder.yudao.module.study.message.handle.enums;

import org.apache.commons.lang3.StringUtils;

/**
 * @Author cjc
 * @Date 2024/3/19 16:03
 * @Description: 发送消息类型枚举
 * @Version 1.0
 */
public enum SendMsgTypeEnum {

    /**
     * 站内信
     */
    IN_MSG("1", "cn.iocoder.yudao.module.study.message.handle.impl.InStationSendMsgImpl"),
    /**
     * 邮件
     */
    EMAIL("2", "cn.iocoder.yudao.module.study.message.handle.impl.EmailSendMsgImpl"),
    /**
     * 微信
     */
    WX("3", "cn.iocoder.yudao.module.study.message.handle.impl.WxSendMsgImpl"),
    /**
     * 短信
     */
    SMS("4", "cn.iocoder.yudao.module.study.message.handle.impl.SmsSendMsgImpl"),
    /**
     * 企业微信
     */
    WX_EP("5", "cn.iocoder.yudao.module.study.message.handle.impl.WxEnterpriseSendMsgImpl"),
    /**
     * 钉钉
     */
    DING_TALK("6", "cn.iocoder.yudao.module.study.message.handle.impl.DingTalkSendMsgImpl"),
    /**
     * 飞书
     */
    FEI_SHU("7", "cn.iocoder.yudao.module.study.message.handle.impl.FeiShuSendMsgImpl"),
    ;

    /**
     * 类型
     */
    private final String type;

    /**
     * 实现类全路径
     */
    private final String implClass;

    SendMsgTypeEnum(String type, String implClass) {
        this.type = type;
        this.implClass = implClass;
    }

    public String getType() {
        return type;
    }

    public String getImplClass() {
        return implClass;
    }

    public static SendMsgTypeEnum getByType(String type) {
        if (StringUtils.isBlank(type)) {
            return null;
        }
        for (SendMsgTypeEnum val : values()) {
            if (val.getType().equals(type)) {
                return val;
            }
        }
        return null;
    }

}
